Image formats for digital images continue to evolve as the popularity of digital images grows. As applications for digital images expand, new image formats and extensions to industry standards for specific image formats emerge regularly. Additionally, manufacturers for imaging devices, such as digital camera manufacturers, may offer new image formats or extensions to image formats that may be specific to a particular imaging device. However, there may be a fixed set of codecs and pixel formats for images typically installed on a computer system that may be available to an application. And the set of codecs provided to encode and decode an image format may only offer fixed implementations designed for existing formats such as standard image types. When a new image format or an extension to an image format may be introduced, the implementation of an encoder and decoder in a codec must be built for the new image format or must be updated to handle the extension to an image format. Unfortunately, the process for updating a codec is expensive and time consuming.
Existing computer system architectures are unable to seamlessly integrate or automatically install additional codecs, either for standard or proprietary image formats, for use in the imaging pipeline of a computer system. Another problem with existing architectures is that a computer system may have a fixed number of specified pixel formats that available codecs in the computer system can recognize. If a decoder was created that introduced a new pixel format for an image type in the computer system, the computer system would not be able to recognize the new pixel format for the image type. Moreover, the tight coupling and dependencies between a codec and a particular image format prevent easy reuse of executable code for encoding and decoding images for different image formats that may be included in a single image file of multiple images.
What is needed is a way for a computer system to easily adapt to the introduction of new image formats without having to release a new implementation of a codec in order to support new image formats. Such a system and method should also be able to seamlessly support applications using third party implementations of image formats and extensions to existing image formats and should allow for automatic conversion of new pixel image formats to pixel formats recognizable by codecs installed on the computer system.